/*
 * @Author: ylyu
 * @Date: 2024-02-21 20:13:16
 * @LastEditors: ylyu
 * @LastEditTime: 2024-02-22 21:28:47
 * @Description: 主进程
 */
const { app, BrowserWindow } = require('electron')
const path = require('path')
require('./controller/getSource')

const createWindow = () => {
  const win = new BrowserWindow({
    width: 1000,
    height: 800,
    //fullscreen: true   //全屏
    //frame: false,   	//让桌面应用没有边框，这样菜单栏也会消失
    resizable: false, //不允许用户改变窗口大小
    // icon: iconPath, //应用运行时的标题栏图标
    minWidth: 300, // 最小宽度
    minHeight: 500, // 最小高度
    maxWidth: 1000, // 最大宽度
    maxHeight: 900, // 最大高度
    webPreferences: {
      backgroundThrottling: false, //设置应用在后台正常运行
      nodeIntegration: true, //设置能在页面使用nodejs的API
      contextIsolation: true, //关闭警告信息
      preload: path.resolve(__dirname, './preload.js'), // 预加载
    },
    show: false,
  })
  win.loadURL('http://localhost:5173')
  win.on('ready-to-show', () => {
    win.show() // 优雅的打开窗口
  })
  win.webContents.openDevTools()
}

app.whenReady().then(() => {
  createWindow()
  // 在 macOS 系统内, 如果没有已开启的应用窗口
  // 点击托盘图标时通常会重新创建一个新窗口
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow()
  })
})

// 除了 macOS 外，当所有窗口都被关闭的时候退出程序。 因此, 通常
// 对应用程序和它们的菜单栏来说应该时刻保持激活状态,
// 直到用户使用 Cmd + Q 明确退出
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') app.quit()
})
